Složka "ChatGPT API" obsahuje soubor "ChatGPT_API.ipynb" obsahující kód rozčleněný na bloky, který umožňuje zpracování dat a komunikaci s vybraným jazykovým modelem prostřednictvím rozhraní API.

========================================
Základní použití:
========================================

Kód pracuje s několika textovými soubory, které jsou pro nás podstatné:


"input_data.txt"
- Slouží k vložení textů k anotaci.

"prompt_response_format.txt"
- Slouží k vložení jedné části promptu (typicky pro výchozí prompt zajišťující formát odpovědi a obsahující základní údaje, nebo pro formulaci promptu potřebnou pro chain-of-thought prompting).

"prompt_user_instructions_1.txt"
- Slouží jako druhá část promptu pro doplňkové instrukce.

"prompt_assistant_responses.txt"
- Slouží pro vložení odpovědi jazykového modelu, vygenerované na základě předchozích částí promptu (typicky při použití chain-of-thought promptu, pro nějž formulujeme v "prompt_response_format.txt" patřičné instrukce, poté v kódu nastavíme parametr "assisting_data = 1", aby kód pracoval s touto odpovědí).

"prompt_user_instructions_2.txt"
- Slouží pro další instrukce, které pracují s obsahem v předešlých textových souborech při nastavení parametru "assisting_data = 1" (typicky používané pro chain-of-thought prompting, k získání požadované odpovědi na základě obsahu v "prompt_assistant_responses.txt").

"output_data.txt"
- Slouží jako výstup jazykového modelu, kterým je vygenerovaná odpověď.

========================================
Nastavení parametrů kódu
========================================

V kódu v bloku 3 je nutné mít v proměnné "openai.api_key" vložený klíč, který komunikaci s API umožní.

Proměnná "model" pak slouží pro výběr konkrétního modelu, který společnost OpenAI zpřístupňuje (např. "gpt-4o-mini-2024-07-18").

----------------------------------------

V bloku 4 lze pak nastavit parametry v proměnných, které mění chování celého kódu:


 
"enable_only_data_extraction"
- Pokud je proměnná 1, zohlední se obsah v souboru "incorrect_annotations.txt". Místo zpracování textů modelem se provede extrakce vložených textů v "input_data.txt" podle toho, který řádek v souboru "incorrect_annotations.txt" obsahuje 1, počínaje třetím řádkem (tj. 3. řádek v "incorrect_annotations.txt" == 1. řádek v "input_data.txt" atd.).

"auto_reannotate_if_invalid"
- Pokud je proměnná 1, provede se kontrola formátu každého řádku odpovědi, obsahující vygenerovanou anotaci. Pokud je některá chybná, provede se opětovná anotace odpovídajícího textu.

"log_misannotated_texts"
- Pokud je proměnná 1, je aktivované ukládání všech anotací v chybném formátu, za předpokladu, že je aktivovaná kontrola anotací ("auto_reannotate_if_invalid = 1"). Záznamy chybně anotovaných textů a jejich anotací se ukládají do souborů ".misannotated_texts_history.txt" a ".misannotated_texts_history_tags.txt".

"assisting_data"
- Pokud je proměnná 1, modelu se odesílá text, který je uložený v souboru "prompt_assistant_responses.txt", typicky určený pro chain-of-thought prompting.

"check_response_length"
- Pokud je proměnná 1, je aktivovaná kontrola počtu vygenerovaných anotací každé dávky textů. V případě, že počet vygenerovaných anotací nesedí s počtem textů, které model anotuje, provede se opětovná anotace celé dávky.

"text_group_size"
- Slouží k vložení číselné hodnoty, která určuje maximální počet textů v každé dávce, které jsou jazykovému modelu postupně odesílány.

"pause_length"
- Slouží k vložení číselné hodnoty v sekundách určující délku pauzy mezi jednotlivými požadavky pro volání modelu.

"annotation_task"
- Slouží k výběru anotační úlohy, což je nezbytné v případě aktivované kontroly anotací:
1 – Sentiment Analysis  
2 – ABSA  
3 – Stance Detection  
4 – Sentiment and Stance Analysis

"task_2_tags_corpora"
- Slouží pro specifikování výběru datasetu v úloze ABSA:  
0 – dataset s aspekty i kategoriemi  
1 – pouze aspekty  
2 – pouze kategorie